home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / AdobeExamples / NX_LineDraw / DrawView.h < prev    next >
Text File  |  1995-06-12  |  4KB  |  130 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34. *    DrawView.h
  35. *    Created by Ken Anderson, Ken Fromm
  36. *
  37. *    The purpose of the application is to show different methods for drawing paths and 
  38. *    the times obtained for each method.  Lines are used in the construction of the paths
  39. *    but curves and arcs could be used as well.
  40. *
  41. *    This file contains the class definition for DrawView, a subclass of View.
  42. *    Instance Variable:
  43. *        Each index for the arrays below corresponds to one line.  
  44. *        X[ ], Y[ ] - Initial points, used with moveto. Selected randomly.
  45. *        X1[ ], Y1[ ] - End points, used with lineto.  Selected randomly.
  46. *        C[ ], W[ ] - Line color and line width.  Chosen specifically/selected randomly.
  47. *        LineColor, LineWidth - The current line color and line width as passed in by
  48. *            the sliders.
  49. *        
  50. *        TotalLines - the number of lines that have been made for a draw operation.
  51. *        PSTrace - Boolean value indicating whether to trace the PostScript.
  52. *        Random - Boolean value indicating whether to select the line color and line
  53. *            width at random or to use the current values of the slider controls.
  54. *
  55. *        matrixDisplayTimes - id to identify to display the display time fields.
  56. *        enableSliderColor, enableSliderWidth - id's of sliders.
  57. *
  58. *    Version:    2.0
  59. *    Author:    Ken Fromm
  60. *    History:
  61. *            03-07-91        Added this comment.
  62. */
  63.         
  64. #import <appkit/appkit.h>
  65. #import <appkit/View.h>
  66.  
  67. #define MAXARRAY   1000                /* Maximum size of line arrays */
  68. #define MAXWIDTH      5                /* Maximum line width */
  69.  
  70. #define BGCOLOR      0.333                /* Background color */
  71. #define BGSTRCOLOR   0.0                /* Background stroke color */
  72. #define BGSTRWIDTH     2.0                /* Background stroke width */
  73.  
  74. #define DRAWALL            0xf8            /* Draw with all methods */ 
  75.  
  76. @interface DrawView : View
  77. {    
  78.     float        X[MAXARRAY], Y[MAXARRAY], X1[MAXARRAY], Y1[MAXARRAY],
  79.             C[MAXARRAY], W[MAXARRAY], LineColor, LineWidth;
  80.  
  81.     int        TotalLines;
  82.         
  83.     BOOL    PSTrace, Random;
  84.         
  85.     id        matrixDisplayTimes, sliderColor, sliderWidth, fieldTotalLines;
  86.  
  87.     union {
  88.         struct {
  89.             unsigned char singleops:1;
  90.             unsigned char wraps:1;
  91.             unsigned char bind:1;
  92.             unsigned char repeat:1;
  93.             unsigned char optimized:1;
  94.             unsigned char PADDING:3;
  95.         }     flags;
  96.         unsigned char        field;
  97.     } drawFlags;
  98. }
  99.  
  100. -initFrame:(NXRect *) frm;
  101.  
  102. -free;
  103.  
  104. -setMatrixDisplayTimes:anObject;
  105. -setSliderColor:anObject;
  106. -setSliderWidth:anObject;
  107. -setFieldTotalLines:anObject;
  108.  
  109. -selectColorWidth:sender;
  110. -changeLineColor:sender;
  111. -changeLineWidth:sender;
  112. -psTrace:sender;
  113.  
  114. -eraseTimes:sender;
  115. -makeLines:sender;
  116. -clearLines:sender;
  117.  
  118. -drawViewOne:sender;
  119. -drawViewAll:sender;
  120.  
  121. -drawSingleOps:(int) cell;
  122. -drawWraps:(int) cell;
  123. -drawWrapsBind:(int) cell;
  124. -drawWrapsRepeat:(int) cell;
  125. -drawOptimizedStroke:(int) cell;
  126.  
  127. -drawSelf:(NXRect *)r :(int) count;
  128.  
  129. @end
  130.